#pragma once
#include "Light.h"

// Forward declaration to resolve circular dependency/include
class Light;

/**
 * Because of the pure virtual function, this class can NOT be instance,
 * just can be inheritance. And the derived class must realize all the pure
 * virtual function, otherwise the derived class also can NOT be instance.
 */
class LightState
{
public:
    virtual void enter(Light* light) = 0;   // pure virtual function
    virtual void toggle(Light* light) = 0;
    virtual void exit(Light* light) = 0;
    virtual ~LightState() {}
};

